#pragma once
#include "Entity.h"
#include "Animation.h"
#include "AnimationFrame.h"
#include "AnimationMenu.h"
#include "SGD Wrappers/CSGD_Direct3D.h"
#include "SGD Wrappers/CSGD_TextureManager.h"

#include "SGD Wrappers/tinyxml.h"
#include "SGD Wrappers/tinystr.h"
#include "EventSystem.h"
#include "NEvent.h"
#include <iostream>

#include <vector>
#include <string>
#include <map>
#include <Windows.h>
using std::vector;
using std::string;
using std::map;



class CAnimationManager 
{

private:
	CAnimationManager(void);
	CAnimationManager(const CAnimationManager&);
	CAnimationManager& operator=(const CAnimationManager&);
	~CAnimationManager(void);

public:

	CSGD_TextureManager*	m_pTM;
	CSGD_Direct3D*			m_pD3D;

	CAnimationMenu m_cAniInfo;

	vector<CAnimation*> m_vAnimation;
	map<string,CAnimation*>  m_mapAnimations;
	
	static CAnimationManager* GetInstance( void );

	void Update( float fElapsedTime,CAnimationMenu &AniInfo);//takes in a CAnimationMenu, string, 
	void Render(CAnimationMenu AniInfo,int nX, int nY, float fScale,bool bFlipped); //takes in a CAnimationMenu, string, posx/y , xscale, bool flipped
	bool LoadFile(const char* szPath);
	bool SetMap( void );
	void Exit(void);
public:
	RECT GetCRECT(CAnimationMenu &AniInfo,int X,int Y);
	int GetCWidth(CAnimationMenu &AniInfo);
	int GetCHeight(CAnimationMenu &AniInfo);    
//	int GetC
}; 

